# include<stdio.h>
# include <stdlib.h>
# include <conio.h>
# include <windows.h>
# include "mastructure.h"
# include "debutant.h"
# include "expert.h"
# include "intermidiaire.h"


int menu_jouer()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(29, 35);
   color_console(10, 0);

   printf("%c C h o i s i r  l e  n i v e a u", 16);
   color_console(11, 0);

   move_cursor(29, 37);
   printf("  R e t o u r  a u  m e n u  p r i n c i p a l");



   move_cursor(29, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 35);
                           color_console(11, 0);
                           printf("  C h o i s i r  l e  n i v e a u");
                           move_cursor(29, 37);
                           color_console(10, 0);
                           printf("%c R e t o u r  a u  m e n u  p r i n c i p a l", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 35);
                           color_console(11, 0);
                           printf("  C h o i s i r  l e  n i v e a u");
                           move_cursor(29, 37);
                           color_console(10, 0);
                           printf("%c R e t o u r  a u  m e n u  p r i n c i p a l", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }
               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 37);
                           color_console(11, 0);
                           printf("  R e t o u r  a u  m e n u  p r i n c i p a l");
                           move_cursor(29, 35);
                           color_console(10, 0);
                           printf("%c C h o i s i r  l e  n i v e a u", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 37);
                           color_console(11, 0);
                           printf("  R e t o u r  a u  m e n u  p r i n c i p a l");
                           move_cursor(29, 35);
                           color_console(10, 0);
                           printf("%c C h o i s i r  l e  n i v e a u", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }

           }
       }
   }while(1);

}


int menu_niveau()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(29, 35);
   color_console(10, 0);

   printf("%c N i v e a u  D e b u t a n t", 16);
   color_console(11, 0);

   move_cursor(29, 37);
   printf("  N i v e a u  I n t e r m e d i a i r e");

   move_cursor(29, 39);
   printf("  N i v e a u  E x p e r t");


   move_cursor(29, 41);
   printf("  R e t o u r  a u  m e n u  d e  J O U E R");

   move_cursor(29, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 35);
                           color_console(11, 0);
                           printf("  N i v e a u  D e b u t a n t");
                           move_cursor(29, 37);
                           color_console(10, 0);
                           printf("%c N i v e a u  I n t e r m e d i a i r e", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 35);
                           color_console(11, 0);
                           printf("  N i v e a u  D e b u t a n t");
                           move_cursor(29, 41);
                           color_console(10, 0);
                           printf("%c R e t o u r  a u  m e n u  d e  J O U E R", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }
               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 37);
                           color_console(11, 0);
                           printf("  N i v e a u  I n t e r m e d i a i r e");
                           move_cursor(29, 39);
                           color_console(10, 0);
                           printf("%c N i v e a u  E x p e r t", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 37);
                           color_console(11, 0);
                           printf("  N i v e a u  I n t e r m e d i a i r e");
                           move_cursor(29, 35);
                           color_console(10, 0);
                           printf("%c N i v e a u  D e b u t a n t", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }
               case 39 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 39);
                           color_console(11, 0);
                           printf("  N i v e a u  E x p e r t");
                           move_cursor(29, 41);
                           color_console(10, 0);
                           printf("%c R e t o u r  a u  m e n u  d e  J O U E R", 16);
                           signaler_rubrique_choisie();
                           color_console(11, 0);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 39);
                           color_console(11, 0);
                           printf("  N i v e a u  E x p e r t");
                           move_cursor(29, 37);
                           color_console(10, 0);
                           printf("%c N i v e a u  I n t e r m e d i a i r e", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();

                       }
                   }
                   break;
               }
               case 41 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 41);
                           color_console(11, 0);
                           printf("  R e t o u r  a u  m e n u  d e  J O U E R");
                           move_cursor(29, 35);
                           color_console(10, 0);
                           printf("%c N i v e a u  D e b u t a n t", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 41);
                           color_console(11, 0);
                           printf("  R e t o u r  a u  m e n u  d e  J O U E R");
                           move_cursor(29, 39);
                           color_console(10, 0);
                           printf("%c N i v e a u  E x p e r t", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }

           }
       }
   }while(1);

}


int menu_principal()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(29, 35);
   color_console(10, 0);

   printf(" J o u e r");
   color_console(11, 0);

   move_cursor(29, 37);
   printf("  R e g l e s");

   move_cursor(29, 39);
   printf("  Q u i t t e r");

   move_cursor(29, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 35);
                           color_console(11, 0);
                           printf("  J o u e r");
                           move_cursor(29, 37);
                           color_console(10, 0);
                           printf("%c R e g l e s", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 35);
                           color_console(11, 0);
                           printf("  J o u e r");
                           move_cursor(29, 39);
                           color_console(10, 0);
                           printf("%c Q u i t t e r", 16);
                           color_console(11, 0);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }
               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 37);
                           color_console(11, 0);
                           printf("  R e g l e s");
                           move_cursor(29, 39);
                           color_console(10, 0);
                           printf("%c Q u i t t e r", 16);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 37);
                           color_console(11, 0);
                           printf("  R e g l e s");
                           move_cursor(29, 35);
                           color_console(10, 0);
                           printf("%c J o u e r", 16);
                           signaler_rubrique_choisie();
                       }
                   }
                   break;
               }

               default :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 39);
                           color_console(11, 0);
                           printf("  Q u i t t e r");
                           move_cursor(29, 35);
                           color_console(10, 0);
                           printf("%c J o u e r", 16);
                           signaler_rubrique_choisie();
                           break;
                       }
                       case 72 :
                     {
                           move_cursor(29, 39);
                           color_console(11, 0);
                           printf("  Q u i t t e r");
                           move_cursor(29, 37);
                           color_console(10, 0);
                           printf("%c R e g l e s", 16);
                           signaler_rubrique_choisie();
                   }
               }
           }
       }
   }
   }while(1);

}




void charger_grille(char nom_fichier[],struct grille tab[8][8], int niveau)
{
    FILE *f;
    struct grille g;
    int x=0,y=0;
    f=fopen(nom_fichier,"r");
    while((x!=niveau)&&(y!=niveau))
    {
        fscanf(f,"%d %d %d %d %d",&g.val0,&g.val1,&g.val2,&g.attrib,&g.attrib2);
        tab[x][y]=g;
        if(y==(niveau-1))
        {
            x++;
            y=0;
        }
        else
        {
            y++;
        }

    }
    fclose(f);
}


void afficher(struct grille tab[8][8],int niveau)
{
    int i,j,k=0,espacement_x,espacement_y;
    if (niveau==4)
    {
      espacement_x=22;
      espacement_y=9;
      }
    if (niveau==6)
    {
      espacement_x=5;
      espacement_y=4;
    }

      if(niveau==8)
    {
      espacement_x=5;
      espacement_y=6;
      }
    for(i=0;i<niveau;i++)
    {

        move_cursor(espacement_x,3+k+espacement_y);
        for (j=0;j<niveau;j++)
        {
             color_console(0,15);
             printf(" ------ ");
             printf(" ");
        }
        printf("\n");
        k++;
        move_cursor(espacement_x,3+k+espacement_y);
        for(j=0;j<niveau;j++)
        {
           if (tab[i][j].attrib==0)
                {
                    if (tab[i][j].attrib2==0)
                        {
                        printf("|  -   | ");
                        }
                        if (tab[i][j].attrib2==1)
                        {
                            if((tab[i][j].val1/10>=1)&&(tab[i][j].val2/10<1))
                            {
                            printf("|%d / %d| ",tab[i][j].val1,tab[i][j].val2);
                            }
                            if((tab[i][j].val1/10<1)&&(tab[i][j].val2/10>=1))
                            {
                            printf("|  %d/%d| ",tab[i][j].val1,tab[i][j].val2);
                            }
                            if ((tab[i][j].val1/10>=1)&&(tab[i][j].val2/10>=1))
                            {
                        printf("| %d/%d| ",tab[i][j].val1,tab[i][j].val2);
                            }
                                }
                    }

                if (tab[i][j].attrib==1)
                {
                    if (tab[i][j].attrib2==0) { if(tab[i][j].val1/10>=1)
                                    {
                                        printf("|  %d  | ",tab[i][j].val1);
                                    }
                                    else
                                    {
                                        printf("|  %d   | ",tab[i][j].val1);
                                    }
                                }
                        if ((tab[i][j].attrib2==1)&&(tab[i][j].val0==0))
                        {
                            printf("|      | ");

                        }
                        if ((tab[i][j].attrib2==1)&&(tab[i][j].val0!=0))
                        {
                            printf("|  %d   | ",tab[i][j].val0);
                        }
                    }

        }
        k++;
        printf("\n");
        move_cursor(espacement_x,3+k+espacement_y);
        for (j=0;j<niveau;j++)
        {
                printf("|______| ");

        }
        printf("\n");
        k++;
        move_cursor(espacement_x,3+k+espacement_y);}
        printf("\n");
    }










int verification(struct grille tabGrille[8][8],int niveau)
{
    int i,j;
    for(i=0;i<niveau;i++)
    {
        for(j=0;j<niveau;j++)
        {
            if((tabGrille[i][j].attrib==1)&&(tabGrille[i][j].attrib==1))
            {
                if((tabGrille[i][j].val0!=0)&&(tabGrille[i][j].val1==0)&&(tabGrille[i][j].val2==0))
                {
                    return 0;
                }
                else
                {
                    return 1;
                }
            }
        }
    }

}
